package com.newtouch.xcd.common.constants;

import lombok.Data;

/**
 * 后台字典
 */
public interface BaseDict {


    /**
     * 一些常量值
     */
    enum Constants implements BaseEnum {

        /**
         * 所有
         */
        ALL("ALL", "所有"),

        ;
        public String code;
        public String message;

        private Constants(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }


    /**
     * Sequence业务类型
     */
    enum SequenceType implements BaseEnum {

//        CLEAN_EVENT("CLEAN_EVENT", "清运事件编号"),
        ;
        public String code;
        public String message;

        private SequenceType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 默认用户代码
     */
    enum UserCode implements BaseEnum {

        /**
         * 自动
         */
        AUTO("999999", "自动"),
        ;
        public String code;
        public String message;

        private UserCode(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 数据等级
     */
    enum DataLevel implements BaseEnum {

        /**
         * 正常
         */
        D0("0", "正常"),
        /**
         * 已删除
         */
        D1("1", "已删除"),

        ;
        public String code;
        public String message;

        private DataLevel(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 展开标志
     * true展开，null不展开
     */
    enum OpenFlag implements BaseEnum {

        /**
         * 展开
         */
        OPEN("true", "展开"),
        ;
        public String code;
        public String message;

        OpenFlag(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 产品标志
     */
    enum ProductMark implements BaseEnum {

        /**
         * 热销产品
         */
        HOT("hot", "热销产品"),
        /**
         * 历史产品
         */
        HIS("his", "历史产品"),
        ;
        public String code;
        public String message;

        ProductMark(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 基金产品热销历史标志
     */
    enum FundProductHotOrHisFlag implements BaseEnum {

        /**
         * 热销产品
         */
        F00("F00", "热销产品"),
        /**
         * 历史产品
         */
        F01("F01", "历史产品"),
        ;
        public String code;
        public String message;

        FundProductHotOrHisFlag(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 到期标志 0未到期 1已到期
     */
    enum ArrivalFlag implements BaseEnum {

        A01("0", "未到期"),
        A02("1", "已到期"),
        ;
        public String code;
        public String message;

        ArrivalFlag(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 规则状态
     */
    enum RuleStatus implements BaseEnum {

        /**
         * 生效中
         */
        R01("R01", "生效中"),
        /**
         * 失效
         */
        R02("R02", "失效"),
        ;
        public String code;
        public String message;

        private RuleStatus(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 星期
     */
    enum Week implements BaseEnum {

        /**
         * 星期一
         */
        W01("MONDAY", "周一"),
        /**
         * 星期二
         */
        W02("TUESDAY", "周二"),
        /**
         * 星期三
         */
        W03("WEDNESDAY", "周三"),
        /**
         * 星期四
         */
        W04("THURSDAY", "周四"),
        /**
         * 星期五
         */
        W05("FRIDAY", "周五"),
        /**
         * 星期六
         */
        W06("SATURDAY", "周六"),
        /**
         * 星期日
         */
        W07("SUNDAY", "周日"),
        ;
        public String code;
        public String message;

        private Week(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 是否开始分配 是/否。 累计分配金额>0 就是是，否则就是否
     */
    enum DistributionStatus implements BaseEnum {

        D01("1", "是"),
        D02("0", "否"),
        ;
        public String code;
        public String message;

        private DistributionStatus(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }
    /**
     * 是否开始分配 是/否。 累计分配金额>0 就是是，否则就是否
     */
    enum BookStatus implements BaseEnum {

        B00("B00", "未提交"),
        B01("B01", "提交成功"),
        ;
        public String code;
        public String message;

        private BookStatus(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }
}
